data segment
    ; db 80h dup (?)
    ; org 30h
    ; indexed_address dw 2000h
    ; buffer label byte 
    ; org $+8
    ; segment_address dw 1000h
    d equ 20/3
data ends
code segment
    assume ds: data, cs: code
start:
mov ax, data
mov ds, ax
mov dx, d + '0'

; lea dx, buffer
mov ah, 2
int 21h

; mov es, [segment_address]
; mov di, [indexed_address]
; mov dx, es:[di]
mov ax, 4c00h
int 21h
code ends
end start